<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>菜单管理</title>
        <link rel="stylesheet" href="../../component/ui/css/ui.css"/>
    </head>
    <body class="pear-container">

        <div class="layui-card">
            <div class="layui-card-body">
                <table id="power-table" lay-filter="power-table"></table>
            </div>
        </div>

        <script type="text/html" id="power-toolbar">
            <button class="pear-btn pear-btn-primary pear-btn-md" lay-event="add">
                <i class="layui-icon layui-icon-add-1"></i>
        新增
    </button>
            <button class="pear-btn pear-btn-success pear-btn-md" lay-event="expandAll">
                <i class="layui-icon layui-icon-spread-left"></i>
	    展开
	</button>
            <button class="pear-btn pear-btn-success pear-btn-md" lay-event="foldAll">
                <i class="layui-icon layui-icon-shrink-right"></i>
	    折叠
	</button>
        </script>

        <script type="text/html" id="power-bar">
            <button class="pear-btn pear-btn-primary pear-btn-sm" lay-event="edit">
                <i class="layui-icon layui-icon-edit"></i>
            </button>
            <button class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove">
                <i class="layui-icon layui-icon-delete"></i>
            </button>
            <button class="pear-btn pear-btn-success pear-btn-sm" lay-event="sql">
                <i class="layui-icon layui-icon-rss"></i>
            </button>
        </script>

        <script type="text/html" id="power-type">
            {{#if (d.type == '0') { }} <span> 目录</span> {{# }else if(d.type == '1'){ }} <span> 菜单</span> {{# }else if(d.type == '2'){ }} <span> 按钮</span> {{# }else if(d.type == '3'){ }} <span> 权限</span> {{# } }}
        </script>

        <script type="text/html" id="power-enable">
            <input type="checkbox" name="ifshow" value="{{d.id}}" lay-skin="switch" lay-text="显示|不显示" lay-filter="ifshow"  {{ d.ifshow == 0 ? 'checked' : '' }}/>
        </script>

        <script type="text/html" id="icon">
            <i class="layui-icon {{d.icon}}"></i>
        </script>
        <script src="../../config/config.js"></script>
        <script src="../../component/layui/layui.js"></script>
        <script src="../../component/ui/ui.js"></script>
        <script>
            layui.use([
                'table', 'form', 'jquery', 'treetable'
            ], function () {
                let table = layui.table;
                let form = layui.form;
                let $ = layui.jquery;
                let treetable = layui.treetable;

                let MODULE_PATH = "./";

                window.render = function () {
                    treetable.render({
                        treeColIndex: 1,
                        treeSpid: 0,
                        treeIdName: 'id',
                        treePidName: 'pid',
                        skin: 'line',
                        treeDefaultClose: true,
                        toolbar: '#power-toolbar',
                        elem: '#power-table',
                        url: 'menu/oplist',
                        page: false,
                        cols: [
                            [
                                {
                                    field: 'id',
                                    title: 'ID'
                                }, {
                                    field: 'title',
                                    minWidth: 200,
                                    title: '权限名称'
                                }, {
                                    field: 'order_num',
                                    edit: 'text',
                                    title: '排序'
                                }, {
                                    field: 'icon',
                                    title: '图标',
                                    templet: '#icon'
                                }, {
                                    field: 'type',
                                    title: '权限类型',
                                    templet: '#power-type'
                                }, {
                                    field: 'ifshow',
                                    title: '是否显示',
                                    templet: '#power-enable'
                                }, {
                                    title: '操作',
                                    templet: '#power-bar',
                                    width: 150,
                                    align: 'center'
                                }
                            ]
                        ]
                    });
                }

                render();

                table.on('tool(power-table)', function (obj) {
                    if (obj.event === 'remove') {
                        window.remove(obj);
                    } else if (obj.event === 'edit') {
                        window.edit(obj);
                    }
                    else if(obj.event === 'sql') {
                        window.sql(obj);
                    }
                })

                table.on('toolbar(power-table)', function (obj) {
                    if (obj.event === 'add') {
                        window.add();
                    } else if (obj.event === 'refresh') {
                        window.refresh();
                    } else if (obj.event === 'expandAll') {
                        treetable.expandAll("#power-table");
                    } else if (obj.event === 'foldAll') {
                        treetable.foldAll("#power-table");
                    }
                });
                table.on('edit(power-table)', function (obj) {
					//console.log(obj)
					
					let update = {
						id: obj.data.id,
						field: obj.field,
						value: obj.value
					}
                    //console.log(update)
                    //return;
					_post(layui, 'menu/editData', update, res => {
						//console.log(res)
						layer.msg('更新成功', {
								icon: 1,
								time: 1000
							});
					}, err => {
						//console.log(err)

					})
				});
                form.on('switch(ifshow)', function (data) {
                    let v = 1;
                    if (data.elem.checked) 
                        v = 0;
                    let postData = {
                        id: data.value,
                        ifshow: v
                    };
                    _post(layui, 'menu/ifshow', postData, res => {
                        //console.log(res)
                    }, err => {
                        $(data.elem).prop('checked', false);
                        form.render('checkbox');
                    })
                });
                window.add = function () {
                    layer.open({
                        type: 2,
                        title: '新增',
                        shade: 0.1,
                        offset: 'rt',
                        area: [
                            '80%', '100%'
                        ],
                        anim: 1,
                        maxmin: true,
                        content: MODULE_PATH + 'add.html'
                    });
                }
                window.sql = function (obj) {
                    layer.open({
                        type: 2,
                        title: '导出',
                        shade: 0.1,
                        offset: 'rt',
                        area: [
                            '80%', '100%'
                        ],
                        anim: 1,
                        maxmin: true,
                        content: MODULE_PATH + 'json.html?id=' + obj.data.id
                    });
                }

                window.edit = function (obj) {
                    //console.log(obj)
                    layer.open({
                        type: 2,
                        title: '修改',
                        shade: 0.1,
                        offset: 'rt',
                        area: [
                            '80%', '100%'
                        ],
                        anim: 1,
                        maxmin: true,
                        content: MODULE_PATH + 'edit.html?id=' + obj.data.id
                    });
                }
                window.remove = function (obj) {
                    layer.confirm('确定要删除该权限', {
                        icon: 3,
                        title: '提示'
                    }, (index) => {
                        layer.close(index);
                        _post(layui, 'menu/del', {
                            id: obj.data.id
                        }, res => {
                            layer.msg('删除成功', {
                                icon: 1,
                                time: 1000
                            }, () => {
                                obj.del();
                            });
                        }, err => {
                            //layer.msg('删除失败',{icon:2,time:1000});
                        })
                    });
                }

            })
        </script>
    </body>
</html>